

#define CATCH_CONFIG_RUNNER
//#define CATCH_CONFIG_MAIN  // This tells Catch to provide a main() - only do this in one cpp file
#include "catch.hpp"



#include <memory>
#include <utility>
#include <iostream>
#include <variant>
#include "cpp/utility.hpp"
#include "cpp/type_traits.hpp"

#include "cpp/scope.hpp"
#include "cpp/array.hpp"
#include "cpp/variant.hpp"


constexpr const char* str_end(const char *str) {
	return *str ? str_end(str + 1) : str;
}

constexpr bool str_slant(const char *str) {
	return (*str == '/' || *str == '\\') ? true : (*str ? str_slant(str + 1) : false);
}

constexpr const char* r_slant(const char* str) {
	return(*str == '/' || *str == '\\') ? (str + 1) : r_slant(str - 1);
}
constexpr const char* file_name(const char* str) {
	return str_slant(str) ? r_slant(str_end(str)) : str;
}



int main(int argc, char * argv[])
{
	constexpr auto f = file_name(__FILE__);
	printf(f);
	

	return Catch::Session().run(argc, argv);
}
